//
// Created by sjjmw on 3/24/2022.
//
#include "iostream"
#include "vector"
#include "list"
#include "algorithm"
#include "string"
#include "unordered_map"
#include "cmath"
#include<iomanip>
#include "string"
#include "map"
#include "list"
//struct Stu{
////    int id;
//    std::string name;
//    int grade;
////    std::string sex;
//};
struct DT{
    int a;
    int b;
    int g;
    int k;
//    左下角的坐标（a，b）以及地毯在x
//    　　轴和y 轴方向的长度。
    bool contain(int x,int y){
        if(x-a>=0&&x-a<=g&&
            y-b>=0&&y-b<=k
        ){
            return true;
        }else{
            return false;
        }
    }
};
struct Sol{
//    std::vector<Stu*> vec;
    std::vector<DT> vec;
    void handle(int n){
        for(int i=0;i<n;i++){
            DT dt;
            std::cin>>dt.a>>dt.b>>dt.g>>dt.k;
            vec.push_back(dt);
        }
        int x,y;
        std::cin>>x>>y;
//        bool contain=false;
        for(int i=vec.size()-1;i>=0;i--){
            if(vec[i].contain(x,y)){
//                contain= true;
                printf("%d\n",i+1);
                return;
            }
        }
//        if(contain== false)
        {
            printf("-1\n");
        }
    }
};
int main(){
    int a,b,c;
    while(std::cin>>a){
        Sol().handle(a);
    }

    return 0;
}